package com.giantlizard.cloud.base.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum DataStatusEnum {

        /**
        * 草稿
        */
        DRAFT(0, "草稿"),

        /**
        * 提交
        */
        SUBMITTED(1, "已提交"),
        /**
         * 审核中
         */
        IN_REVIEW(2, "审核中"),
    
        /**
         * 通过
         */
        PASS(3, "通过"),
        
        /**
         * 不通过
         */
        NOT_PASS(4, "不通过"),

        /**
         * 作废
         */
        CANCEL(5, "作废"),

        /**
         * 锁定
         */
        LOCK(6, "锁定");

        private final Integer code;

        private final String name;

    /**
     * 根据状态码获取对应的枚举值。
     *
     * @param code 状态码
     * @return 对应的枚举值，如果找不到则返回null
     */
    public static DataStatusEnum getByCode(Integer code) {
        for (DataStatusEnum status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        return null;
    }

    public static String getNameByCode(Integer code) {
        for (DataStatusEnum status : values()) {
            if (status.getCode().equals(code)) {
                return status.getName();
            }
        }
        return null;
    }

    public static Integer getCodeByName(String name) {
        for (DataStatusEnum status : values()) {
            if (status.getName().equals(name)) {
                return status.getCode();
            }
        }
        return null;
    }

}
